The reliable storage of computer data is one of the most important aspects of modern life. From applications and programs, to credit information, web sites, and the like, some of the most important aspects of an individual's life are stored in an electronic form. One of the problems facing electronic storage is device failure and the subsequent loss of data. One of the methods utilized to lessen the chance of data device failure, and the resulting loss of information, is the use of mirrored data storage devices.
Mirrored data storage devices are devices in which data is written to at least two devices simultaneously. In this way, if one of the devices fail, the system may switch to the other device without a loss of data or service. Mirroring is useful as a way to keep data accessible in a reliable manner. However, although the data is typically available when one of the devices is suspended, such as when an interruption in operation occurs, it is still desirable to enable the data on the working subsystem to be mirrored on an additional device. In other words, to return the system to full operational status in case the remaining working subsystem suffers an operational failure, such as by returning the suspended device to operational status, using a replacement device, and the like.
To accomplish this, mirrored devices previously copied all the data from the operational device to the suspended storage device. However, this may take a significant amount of time to perform, thereby causing a decrease in system resources. One method utilized to address this problem involved the transfer of only the data changed since the mirrored storage device became suspended. This was accomplished with a type of log or map that was maintained to track the data not transferred to the mirror. However, as storage devices became larger, the storage and processing required for maintaining this map has become increasingly larger.
Therefore, it would be useful to provide an improved system and method for optimizing establishment of mirrored data.